package com.base.cn.platform.os.entity.exam.record;

import com.base.cn.platform.os.common.mybatis.BaseEntity;
import com.base.cn.platform.os.common.mybatis.SqlExclude;
import com.base.cn.platform.os.entity.exam.paper.ExamPaper;
import com.base.cn.platform.os.entity.exam.paper.ExamPaperQuestion;
import com.base.cn.platform.os.entity.exam.paper.ExamPaperQuestionTemp;
import lombok.Data;

import java.math.BigDecimal;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * 考试记录对象
 *
 * @author s.li
 * @date 2018/12/07
 */
@Data
public class ExamRecord extends BaseEntity {
    /**考试记录使用类型，1考试，2作业，3随堂练习*/
    private Integer useType;
    /**用户ID*/
    private BigDecimal userId;
    /**考点id(考点练习)*/
    private  BigDecimal lorePointId;
    /**试卷id(真题测验)*/
    private BigDecimal examId;
    /**试卷名*/
    private String name;
    /**试卷总分值*/
    private Integer score;
    /**用户得分*/
    private Integer userScore;
    /**考试时长 单位分钟*/
    private Integer answerTime;
    /**已使用考试时间 单位：秒*/
    private Integer examTime;
    /**用户考试结果正确率*/
    private Float accuracy;
    /**1.真题测验 2.考点练习 3.错题练习 4.自由组卷*/
    private Integer type;
    /**1.考试模式 2.练习模式*/
    private Integer mode;
    /**错题模式，1顺序模式，2随机模式，3调频错题*/
    private Integer errorMode;
    /**是否提供阅卷服务，1是，2否*/
    private Integer marking;
    /**1.未批阅，2.已批阅*/
    private Integer marked;
    /**试题数量*/
    private Integer questionCount;
    /**课程ID串*/
    private String courseIds;
    /**班级ID串*/
    private String classIds;
    /**目录ID（用于随堂练习）*/
    private BigDecimal catalogId;

    /**
     * status 考试状态 1.未完成 2.已完成
     */
    /**试题对象*/
    private ExamPaper examPaper;
    /**用户对象*/
    private Map<String,Object> user;
    /**试题记录列表*/
    private List<ExamQuestionRecord> examQuestionRecordList;
    /**试卷下的试题类型模板列表（用于试卷）*/
    private List<ExamPaperQuestionTemp> examPaperQuestionTempList;
    /**试卷下的试题数据列表（用于试卷）*/
    private List<ExamPaperQuestion> examPaperQuestionList;
    /**答题卡数据列表*/
    private List<LinkedHashMap<String,Object>> answerCardList;
    /**课程列表列表*/
    private List<Map<String,Object>> courseList;
    /**班级列表*/
    private List<Map<String,Object>> classesList;
    /**所有的考点数据*/
    private Map<String,String> allPointMap;
    /**答对数量*/
    private int rightNum;
    /**作业排名 */
    @SqlExclude
    private int rankingNum;
    /**与最高分差*/
    @SqlExclude
    private int differenceNum;
}
